package com.huashun.ship.run.shiplock.service;

import com.huashun.ship.run.shiplock.dto.ShipLockDetailDTO;
import com.huashun.ship.run.shiplock.dto.ShipLockOverviewDTO;

import java.io.IOException;
import java.util.List;

/**
 * 船舶过闸数据业务逻辑接口
 * @author yzh
 * @version 0.0.1
 * @since 20200510
 */
public interface ShipLockService {
    /**
     * 查询获取所有船闸过闸情况总览数据
     * @return
     */
    List<ShipLockOverviewDTO> getAllShipLockOverviewDTOs();

    /**
     * 根据船闸代码和航行方向查询获取船舶过闸的详细信息列表
     * @param shipLockCode
     * @param direction
     * @return
     */
    List<ShipLockDetailDTO> getShipLockDetailDTOs(String shipLockCode, String direction);

    /**
     * 刷新redis中的船闸过闸情况总览数据
     */
    void reloadShipLockOverviews() throws IOException;

    /**
     * 根据船闸代码和航行方向刷新对应船闸对应航行方向的过闸详细信息列表
     * @param shipLockCode
     * @param direction
     */
    void reloadShipLockDetails(String shipLockCode, String direction) throws IOException;
}